#ifndef CHESS_H
#define CHESS_H

#include <cstdlib>
#include <cstdio>
#include <QDebug>

using namespace std;


typedef enum 
{
    ChessNull = 0,
    Chessblack = 1,
    Chesswhite = -1,
} ChessType;

typedef struct chess_t
{
    int x;
    int y;
    ChessType color;
    chess_t* next;
    chess_t* pre;
}chess_t;

class Chess
{
public:
    Chess();
    ~Chess();

    /* 添加棋子，即下棋 */
    void add_chess(int x, int y, ChessType color);

    /* 删除上一个棋子 */
    void del_lastone_chess();

    /* 删除全部棋子 */
    void del_allchess();

    /* 获取上一个棋子 */
    chess_t* get_last_chess();

    /* 获取对应坐标的棋子 */
    chess_t* get_chess(int x, int y);

    /* 检测棋子颜色 */
    bool check_chess_color(int x, int y, ChessType color);

    /* 检测当前位置有没有棋子 */
    bool check_chess(int x, int y);

    /* 查找一个棋子颜色 */
    ChessType find_chess_color(int x, int y);

    /* show */
    void show_chess(chess_t* index);

    /* debug  printf log*/
    void show_allChess();

public:
    chess_t* chess_head;
};

#endif // CHESS_H
